package com.ddyx.util;

import java.util.ArrayList;
import java.util.Collections;

import org.apache.commons.codec.digest.DigestUtils;

/**
 * @ClassName: WxMessageCheckUtil.java
 * @Description: 微信消息 校验 规则描述 1. 将token、timestamp、nonce三个参数进行字典序排序 2.将三个参数字符串拼接成一个字符串进行sha1加密 3.开发者获得加密后的字符串可与signature对比，标识该请求来源于微信
 * @author:
 * @date: 2018年1月23日
 */
public class WxMessageCheckUtil {
	public static boolean validate(String signature,String timestamp,String nonce,String token) {
//		String signature="0f829ac4e6689efbd338abda4c090f90bab60725";
//		String timestamp="1455868453";
//		String nonce="1677866950";
//		String token="weixin";
		
		ArrayList<String> list=new ArrayList<String>();
		list.add(token);
		list.add(timestamp);
		list.add(nonce);

		Collections.sort(list);
		
		String signature2 = DigestUtils.shaHex(list.get(0)+list.get(1)+list.get(2));
		
		return signature.equals(signature2);
	}
}
